package com.dxfDemo.freemarker.test;

import freemarker.cache.FileTemplateLoader;
import freemarker.template.Configuration;
import freemarker.template.Template;
import org.junit.Test;

import java.io.File;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.HashMap;

/**
 * FreeMarker程序
 *      1 操作步骤
 *
 *
 *
 *
 *
 */
public class FreeMarkerTest01 {

    @Test
    public void test01() throws Exception {
        //1 创建freemarker的配置类
        Configuration cfg= new Configuration();
        //2 指定模板加载器(加载方式,用一次加载一次,第一次加载后存入缓存)

        FileTemplateLoader ftl = new FileTemplateLoader(new File("templates"));//文件路径加载器
        cfg.setTemplateLoader(ftl);
        //3 获取模板
        Template template = cfg.getTemplate("template01.ftl");
        //4 构造数据模型
        HashMap<String, Object> dataModel = new HashMap<String, Object>();
        dataModel.put("username","ZhangSan");
        dataModel.put("flag",2);

        ArrayList<String> list = new ArrayList<String>();
        list.add("星期一");
        list.add("星期二");
        list.add("星期三");
        list.add("星期四");
        dataModel.put("weeks",list);


        //5 文件输出
        /**
         * process()方法
         * 参数1 数据模型
         * 参数2 writer(FileWriter生成文件,printWriter打印到控制台)
         *
         */
       // template.process(dataModel,new FileWriter(new File("C:\\dxf\\aaaa")));//生成文件

        template.process(dataModel,new PrintWriter(System.out));//打印控制台,方便测试

    }
}
